<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .cvs{
      border: solid 1px black;
    }
  </style>
</head>
<body>
  <canvas class="cvs"></canvas>
</body>
<script>
  

  const cvs = document.querySelector(".cvs")

  cvs.width = 400;
  cvs.height = 400;

  const ctx = cvs.getContext("2d");

  // 线性渐变
  // const lg = ctx.createLinearGradient(100, 100, 200, 200);
  // lg.addColorStop(0, "red");
  // lg.addColorStop(0.5, "blue");
  // // lg.addColorStop(0.5, "yellow");
  // lg.addColorStop(1, "green");
  // ctx.fillStyle = lg;
  // ctx.fillRect(100, 100, 100, 100);

  // 径向渐变
  // const rg = ctx.createRadialGradient(50, 50, 0, 50, 50, 50);
  // rg.addColorStop(0, "red");
  // rg.addColorStop(1, "green");
  // ctx.fillStyle = rg;
  // ctx.fillRect(0, 0, 100, 100);
  
  // 多渐变
  const rg1 = ctx.createRadialGradient(50, 50, 0, 50, 50, 50);
  rg1.addColorStop(0, "red");
  rg1.addColorStop(1, "green");
  ctx.fillStyle = rg1;
  ctx.fillRect(0, 0, 100, 100);

  const rg2 = ctx.createRadialGradient(150, 50, 0, 150, 50, 50);
  rg2.addColorStop(0, "yellow");
  rg2.addColorStop(1, "blue");
  ctx.fillStyle = rg2;
  ctx.fillRect(100, 0, 100, 100);

  const lg1 = ctx.createLinearGradient(200, 0, 300, 0);
  lg1.addColorStop(0, "red");
  lg1.addColorStop(1, "green");
  ctx.fillStyle = lg1;
  // ctx.fillRect(200, 0, 100, 100);
  ctx.font = "50px 黑体";
  ctx.fillText("千锋", 200, 100);

  const lg2 = ctx.createLinearGradient(300, 0, 300, 100);
  lg2.addColorStop(0, "red");
  lg2.addColorStop(1, "green");
  ctx.fillStyle = lg2;
  ctx.fillRect(300, 0, 100, 100);

</script>
</html>